# このスクリプトは， todo-dash を動作させる上で必要な
# DB と Table を作成するスクリプトです．
#
# usage:
#   ruby create_db.rb <stage>
#
#   <stage> := ここで指定したステージ以降 [stage, last-number]
#              のマイグレーションが実行される．
#

require 'rubygems'
require 'mysql'
require 'activerecord'

require 'src/db_connect_info.rb'
require 'migration/001_create_task.rb'
require 'migration/002_create_accounts.rb'
require 'migration/003_change_datatype_of_priority_column_on_task.rb'
require 'migration/004_add_due_column_on_task.rb'

db = Mysql::new(DBConnectInfo::HOST, DBConnectInfo::USER, DBConnectInfo::PASSWORD)
db.query("CREATE DATABASE IF NOT EXISTS #{DBConnectInfo::DB_NAME}")
# コネクション切断
db.close
puts "#{DBConnectInfo::DB_NAME} created."

DBConnectInfo.connect()

stage = ARGV[0].to_i  # 引数がなかった場合は 0 になる

if stage <= 1 then
  # taskテーブル生成
  CreateTask.migrate(:up)
end

if stage <= 2 then
  # account 管理用
  CreateAccounts.migrate(:up)
end

if stage <= 3 then
  # task テーブルにおける priority カラムの型を変更
  ChangeDatatypeOfPriorityColumnOnTask.migrate(:up)
end

if stage <= 4 then
  # task テーブルに due カラムを追加
  AddDueColumnOnTask.migrate(:up)
end

puts "end create database."
